/**
 * @license
 * Copyright (C) 2020 The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
import {html} from '@polymer/polymer/lib/utils/html-tag.js';

export const htmlTemplate = html`
    <style include="shared-styles">
      /* Workaround for empty style block - see https://github.com/Polymer/tools/issues/408 */
    </style>
    <style include="gr-form-styles">
      .statusHeader {
        width: 4em;
      }
      .keyHeader {
        width: 7.5em;
      }
      #viewKeyOverlay {
        padding: var(--spacing-xxl);
        width: 50em;
      }
      .publicKey {
        font-family: var(--monospace-font-family);
        font-size: var(--font-size-mono);
        line-height: var(--line-height-mono);
        overflow-x: scroll;
        overflow-wrap: break-word;
        width: 30em;
      }
      .closeButton {
        bottom: 2em;
        position: absolute;
        right: 2em;
      }
      #existing {
        margin-bottom: var(--spacing-l);
      }
      #existing .commentColumn {
        min-width: 27em;
        width: auto;
      }
    </style>
    <div class="gr-form-styles">
      <fieldset id="existing">
        <table>
          <thead>
            <tr>
              <th class="commentColumn">Comment</th>
              <th class="statusHeader">Status</th>
              <th class="keyHeader">Public key</th>
              <th></th>
              <th></th>
            </tr>
          </thead>
          <tbody>
            <template is="dom-repeat" items="[[_keys]]" as="key">
              <tr>
                <td class="commentColumn">[[key.comment]]</td>
                <td>[[_getStatusLabel(key.valid)]]</td>
                <td>
                  <gr-button link="" on-click="_showKey" data-index\$="[[index]]">Click to View</gr-button>
                </td>
                <td>
                  <gr-copy-clipboard has-tooltip="" button-title="Copy SSH public key to clipboard" hide-input="" text="[[key.ssh_public_key]]">
                  </gr-copy-clipboard>
                </td>
                <td>
                  <gr-button link="" data-index\$="[[index]]" on-click="_handleDeleteKey">Delete</gr-button>
                </td>
              </tr>
            </template>
          </tbody>
        </table>
        <gr-overlay id="viewKeyOverlay" with-backdrop="">
          <fieldset>
            <section>
              <span class="title">Algorithm</span>
              <span class="value">[[_keyToView.algorithm]]</span>
            </section>
            <section>
              <span class="title">Public key</span>
              <span class="value publicKey">[[_keyToView.encoded_key]]</span>
            </section>
            <section>
              <span class="title">Comment</span>
              <span class="value">[[_keyToView.comment]]</span>
            </section>
          </fieldset>
          <gr-button class="closeButton" on-click="_closeOverlay">Close</gr-button>
        </gr-overlay>
        <gr-button on-click="save" disabled\$="[[!hasUnsavedChanges]]">Save changes</gr-button>
      </fieldset>
      <fieldset>
        <section>
          <span class="title">New SSH key</span>
          <span class="value">
            <iron-autogrow-textarea id="newKey" autocomplete="on" bind-value="{{_newKey}}" placeholder="New SSH Key"></iron-autogrow-textarea>
          </span>
        </section>
        <gr-button id="addButton" link="" disabled\$="[[_computeAddButtonDisabled(_newKey)]]" on-click="_handleAddKey">Add new SSH key</gr-button>
      </fieldset>
    </div>
    <gr-rest-api-interface id="restAPI"></gr-rest-api-interface>
`;
